import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
# get gradient:
# ref: https://docs.opencv.org/3.4/da/d22/tutorial_py_canny.html
# Canny Edge detection:
# - Noise Reduction!!!
# - Get gradient and direction
# - Non-maximum Suppression & Hysteresis Thresholding
def canny_edge(path):
img = cv.imread(path,0)
edges = cv.Canny(img,100,200)
im_rgb = cv.cvtColor(cv.imread(path), cv.COLOR_BGR2RGB)
plt.figure(figsize=(15,5))
plt.subplot(131),plt.imshow(im_rgb)
plt.title('Original RGB Gray Image of '+ path), plt.xticks([]), plt.yticks([])
plt.subplot(132),plt.imshow(img,cmap = 'gray')
plt.title('Original Gray Image'), plt.xticks([]), plt.yticks([])
plt.subplot(133),plt.imshow(edges,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])
plt.show()
return edges
import numpy as np
import matplotlib.pyplot as plt
from skimage import data, img_as_float
from skimage.metrics import structural_similarity as ssim
from skimage.metrics import mean_squared_error as mse
import cv2 as cv
from skimage.metrics import structural_similarity as ssim
def mse_(path1, path2):
# path_= 'input.jpg'
image1 = cv.imread(path1)
image1 = cv.cvtColor(image1,cv.COLOR_BGR2GRAY) # 将图像转换为灰度图
# path_= 'output_0.jpg'
image2 = cv.imread(path2)
image2 = cv.cvtColor(image2,cv.COLOR_BGR2GRAY) # 将图像转换为灰度图
sim = mse(image1, image2)
# plt.subplot(121),plt.imshow(image1,cmap = 'gray')
# plt.title('Original Image: '+path1), plt.xticks([]), plt.yticks([])
# plt.subplot(122),plt.imshow(image2,cmap = 'gray')
# plt.title('Output Image: '+path2), plt.xticks([]), plt.yticks([])
# plt.show()
print("MSE:", sim)
def ssim_(path1, path2):
# path_= 'input.jpg'
image1 = cv.imread(path1)
image1 = cv.cvtColor(image1,cv.COLOR_BGR2GRAY) # 将图像转换为灰度图
# path_= 'output_0.jpg'
image2 = cv.imread(path2)
image2 = cv.cvtColor(image2,cv.COLOR_BGR2GRAY) # 将图像转换为灰度图
sim = ssim(image1, image2)
plt.subplot(121),plt.imshow(image1,cmap = 'gray')
plt.title('Original Image: '+path1), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(image2,cmap = 'gray')
plt.title('Output Image: '+path2), plt.xticks([]), plt.yticks([])
plt.show()
print("SSIM:", sim)
def ssim_img(image1, image2):
sim = ssim(image1, image2)
plt.subplot(121),plt.imshow(image1,cmap = 'gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(image2,cmap = 'gray')
plt.title('Output Image'), plt.xticks([]), plt.yticks([])
plt.show()
print("edge-SSIM:", sim)
# Not suitable to use
def mse_img(image1, image2):
sim = mse(image1, image2)
# plt.subplot(121),plt.imshow(image1,cmap = 'gray')
# plt.title('Original Image'), plt.xticks([]), plt.yticks([])
# plt.subplot(122),plt.imshow(image2,cmap = 'gray')
# plt.title('Output Image'), plt.xticks([]), plt.yticks([])
# plt.show()
print("edge-MSE:", sim)
print("**** Test golden style ****")
edg1 = canny_edge('input_0.jpg')
edg2 = canny_edge('ours/output_0.jpg') # ours
edg3 = canny_edge('ours_opt/output_0.jpg') # ours
edg4 = canny_edge('ours_noloss/output_0.jpg') #ours-no loss
edg5 = canny_edge('ours_grad/output_0.jpg') #ours-grad loss
edg6 = canny_edge('ours_kl/output_0.jpg') #ours-kl loss
edg7 = canny_edge('dsmap/output_0.jpg') #dsmap
print()
print("****************************************************************")
print("input vs ours")
ssim_img(edg1, edg2)
ssim_('input_0.jpg', 'ours/output_0.jpg')
print()
print("****************************************************************")
print("input vs ours-opt")
ssim_img(edg1, edg3)
ssim_('input_0.jpg', 'ours_opt/output_0.jpg')
print()
print("****************************************************************")
print("input vs ours-noloss")
ssim_img(edg1, edg4)
ssim_('input_0.jpg', 'ours_noloss/output_0.jpg')
print()
print("****************************************************************")
print("input vs ours_grad")
ssim_img(edg1, edg5)
ssim_('input_0.jpg', 'ours_grad/output_0.jpg')
print()
print("****************************************************************")
print("input vs ours_kl")
ssim_img(edg1, edg6)
ssim_('input_0.jpg', 'ours_kl/output_0.jpg')
print()
print("****************************************************************")
print("input vs dsmap")
ssim_img(edg1, edg7)
ssim_('input_0.jpg', 'dsmap/output_0.jpg')
**** Test golden style ****
**************************************************************** input vs ours
edge-SSIM: 0.6818926587510011
SSIM: 0.7303196323115332 **************************************************************** input vs ours-opt
edge-SSIM: 0.8143807591283646
SSIM: 0.8125945560375658 **************************************************************** input vs ours-noloss
edge-SSIM: 0.5640543917112637
SSIM: 0.6303402484233858 **************************************************************** input vs ours_grad
edge-SSIM: 0.6702874506524278
SSIM: 0.7074531930873045 **************************************************************** input vs ours_kl
edge-SSIM: 0.5928910382330693
SSIM: 0.6752602997638327 **************************************************************** input vs dsmap
edge-SSIM: 0.5450863178996909
SSIM: 0.6166640107472611
print("**** Test challenging Golden style ****")
edg1 = canny_edge('input_14.jpg')
edg2 = canny_edge('ours/14_output_1.jpg') # ours
edg3 = canny_edge('ours_opt/14_output_1.jpg') # ours
edg4 = canny_edge('ours_noloss/14_output_1.jpg') #ours-no loss
edg5 = canny_edge('ours_grad/14_output_1.jpg') #ours-grad loss
edg6 = canny_edge('ours_kl/14_output_1.jpg') #ours-kl loss
edg7 = canny_edge('dsmap/14_output_1.jpg') #dsmap
print()
print("****************************************************************")
print("input vs ours")
ssim_img(edg1, edg2)
ssim_('input_14.jpg', 'ours/14_output_1.jpg')
print()
print("****************************************************************")
print("input vs ours-opt")
ssim_img(edg1, edg3)
ssim_('input_14.jpg', 'ours_opt/14_output_1.jpg')
print()
print("****************************************************************")
print("input vs ours-noloss")
ssim_img(edg1, edg4)
ssim_('input_14.jpg', 'ours_noloss/14_output_1.jpg')
print()
print("****************************************************************")
print("input vs ours_grad")
ssim_img(edg1, edg5)
ssim_('input_14.jpg', 'ours_grad/14_output_1.jpg')
print()
print("****************************************************************")
print("input vs ours_kl")
ssim_img(edg1, edg6)
ssim_('input_14.jpg', 'ours_kl/14_output_1.jpg')
print()
print("****************************************************************")
print("input vs dsmap")
ssim_img(edg1, edg7)
ssim_('input_14.jpg', 'dsmap/14_output_1.jpg')
**** Test challenging Golden style ****
**************************************************************** input vs ours
edge-SSIM: 0.4016619089813951
SSIM: 0.286677638305511 **************************************************************** input vs ours-opt
edge-SSIM: 0.5210624393889896
SSIM: 0.3722094332305752 **************************************************************** input vs ours-noloss
edge-SSIM: 0.33181409077251955
SSIM: 0.07973478159186682 **************************************************************** input vs ours_grad
edge-SSIM: 0.3319695057747022
SSIM: 0.06763170257439516 **************************************************************** input vs ours_kl
edge-SSIM: 0.338419200619528
SSIM: 0.08802369702587574 **************************************************************** input vs dsmap
edge-SSIM: 0.2520496469064007
SSIM: 0.32493827244967105
print("**** Test challenging Blue style ****")
edg1 = canny_edge('input_18.jpg')
edg2 = canny_edge('ours/18_output_23.jpg') # ours
edg3 = canny_edge('ours_opt/18_output_23.jpg') # ours
edg4 = canny_edge('ours_noloss/18_output_23.jpg') #ours-no loss
edg5 = canny_edge('ours_grad/18_output_23.jpg') #ours-grad loss
edg6 = canny_edge('ours_kl/18_output_23.jpg') #ours-kl loss
edg7 = canny_edge('dsmap/18_output_23.jpg') #dsmap
print()
print("****************************************************************")
print("input vs ours")
ssim_img(edg1, edg2)
ssim_('input_18.jpg', 'ours/18_output_23.jpg')
print()
print("****************************************************************")
print("input vs ours-opt")
ssim_img(edg1, edg3)
ssim_('input_18.jpg', 'ours_opt/18_output_23.jpg')
print()
print("****************************************************************")
print("input vs ours-noloss")
ssim_img(edg1, edg4)
ssim_('input_18.jpg', 'ours_noloss/18_output_23.jpg')
print()
print("****************************************************************")
print("input vs ours_grad")
ssim_img(edg1, edg5)
ssim_('input_18.jpg', 'ours_grad/18_output_23.jpg')
print()
print("****************************************************************")
print("input vs ours_kl")
ssim_img(edg1, edg6)
ssim_('input_18.jpg', 'ours_kl/18_output_23.jpg')
print()
print("****************************************************************")
print("input vs dsmap")
ssim_img(edg1, edg7)
ssim_('input_18.jpg', 'dsmap/18_output_23.jpg')
**** Test challenging Blue style ****
**************************************************************** input vs ours
edge-SSIM: 0.528687019524189
SSIM: 0.4891096649007594 **************************************************************** input vs ours-opt
edge-SSIM: 0.7974035516861685
SSIM: 0.5982476690002758 **************************************************************** input vs ours-noloss
edge-SSIM: 0.39199018422913673
SSIM: 0.270593331536675 **************************************************************** input vs ours_grad
edge-SSIM: 0.4467725341194343
SSIM: 0.2954892339984061 **************************************************************** input vs ours_kl
edge-SSIM: 0.40815775872022664
SSIM: 0.33351319700844667 **************************************************************** input vs dsmap
edge-SSIM: 0.5061561793117823
SSIM: 0.31818000385790357
print("**** Test challenging Blue style ****")
edg1 = canny_edge('input_18.jpg')
edg2 = canny_edge('ours/18_output_43.jpg') # ours
edg3 = canny_edge('ours_opt/18_output_43.jpg') # ours
edg4 = canny_edge('ours_noloss/18_output_43.jpg') #ours-no loss
edg5 = canny_edge('ours_grad/18_output_43.jpg') #ours-grad loss
edg6 = canny_edge('ours_kl/18_output_43.jpg') #ours-kl loss
edg7 = canny_edge('dsmap/18_output_43.jpg') #dsmap
print()
print("****************************************************************")
print("input vs ours")
ssim_img(edg1, edg2)
ssim_('input_18.jpg', 'ours/18_output_43.jpg')
print()
print("****************************************************************")
print("input vs ours-opt")
ssim_img(edg1, edg3)
ssim_('input_18.jpg', 'ours_opt/18_output_43.jpg')
print()
print("****************************************************************")
print("input vs ours-noloss")
ssim_img(edg1, edg4)
ssim_('input_18.jpg', 'ours_noloss/18_output_43.jpg')
print()
print("****************************************************************")
print("input vs ours_grad")
ssim_img(edg1, edg5)
ssim_('input_18.jpg', 'ours_grad/18_output_43.jpg')
print()
print("****************************************************************")
print("input vs ours_kl")
ssim_img(edg1, edg6)
ssim_('input_18.jpg', 'ours_kl/18_output_43.jpg')
print()
print("****************************************************************")
print("input vs dsmap")
ssim_img(edg1, edg7)
ssim_('input_18.jpg', 'dsmap/18_output_43.jpg')
**** Test challenging Blue style ****
**************************************************************** input vs ours
edge-SSIM: 0.6262334184002538
SSIM: 0.6842636665703894 **************************************************************** input vs ours-opt
edge-SSIM: 0.8324479548521894
SSIM: 0.8104880787836298 **************************************************************** input vs ours-noloss
edge-SSIM: 0.46855614737642903
SSIM: 0.5790630532126769 **************************************************************** input vs ours_grad
edge-SSIM: 0.5829223865144536
SSIM: 0.620937499244423 **************************************************************** input vs ours_kl
edge-SSIM: 0.548555272828012
SSIM: 0.6381744866865053 **************************************************************** input vs dsmap
edge-SSIM: 0.5482005566701473
SSIM: 0.5672060858520116
print("**** Test challenging dark style ****")
edg1 = canny_edge('input_19.jpg')
edg2 = canny_edge('ours/19_output_11.jpg') # ours
edg3 = canny_edge('ours_opt/19_output_11.jpg') # ours
edg4 = canny_edge('ours_noloss/19_output_11.jpg') #ours-no loss
edg5 = canny_edge('ours_grad/19_output_11.jpg') #ours-grad loss
edg6 = canny_edge('ours_kl/19_output_11.jpg') #ours-kl loss
edg7 = canny_edge('dsmap/19_output_11.jpg') #dsmap
print()
print("****************************************************************")
print("input vs ours")
ssim_img(edg1, edg2)
ssim_('input_19.jpg', 'ours/19_output_11.jpg')
print()
print("****************************************************************")
print("input vs ours-opt")
ssim_img(edg1, edg3)
ssim_('input_19.jpg', 'ours_opt/19_output_11.jpg')
print()
print("****************************************************************")
print("input vs ours-noloss")
ssim_img(edg1, edg4)
ssim_('input_19.jpg', 'ours_noloss/19_output_11.jpg')
print()
print("****************************************************************")
print("input vs ours_grad")
ssim_img(edg1, edg5)
ssim_('input_19.jpg', 'ours_grad/19_output_11.jpg')
print()
print("****************************************************************")
print("input vs ours_kl")
ssim_img(edg1, edg6)
ssim_('input_19.jpg', 'ours_kl/19_output_11.jpg')
print()
print("****************************************************************")
print("input vs dsmap")
ssim_img(edg1, edg7)
ssim_('input_19.jpg', 'dsmap/19_output_11.jpg')
**** Test challenging dark style ****
**************************************************************** input vs ours
edge-SSIM: 0.6996379733003116
SSIM: 0.34191323173088795 **************************************************************** input vs ours-opt
edge-SSIM: 0.7887027484415844
SSIM: 0.3847590554614435 **************************************************************** input vs ours-noloss
edge-SSIM: 0.5821570446724226
SSIM: 0.24356561828335782 **************************************************************** input vs ours_grad
edge-SSIM: 0.6791621607384498
SSIM: 0.31750763681539035 **************************************************************** input vs ours_kl
edge-SSIM: 0.6016069422612976
SSIM: 0.2702811455548931 **************************************************************** input vs dsmap
edge-SSIM: 0.5233863218112146
SSIM: -0.023493186186203
print("**** Test dark style ****")
edg1 = canny_edge('input_19.jpg')
edg2 = canny_edge('ours/19_output_19.jpg') # ours
edg3 = canny_edge('ours_opt/19_output_19.jpg') # ours
edg4 = canny_edge('ours_noloss/19_output_19.jpg') #ours-no loss
edg5 = canny_edge('ours_grad/19_output_19.jpg') #ours-grad loss
edg6 = canny_edge('ours_kl/19_output_19.jpg') #ours-kl loss
edg7 = canny_edge('dsmap/19_output_19.jpg') #dsmap
print()
print("****************************************************************")
print("input vs ours")
ssim_img(edg1, edg2)
ssim_('input_19.jpg', 'ours/19_output_19.jpg')
print()
print("****************************************************************")
print("input vs ours-opt")
ssim_img(edg1, edg3)
ssim_('input_19.jpg', 'ours_opt/19_output_19.jpg')
print()
print("****************************************************************")
print("input vs ours-noloss")
ssim_img(edg1, edg4)
ssim_('input_19.jpg', 'ours_noloss/19_output_19.jpg')
print()
print("****************************************************************")
print("input vs ours_grad")
ssim_img(edg1, edg5)
ssim_('input_19.jpg', 'ours_grad/19_output_19.jpg')
print()
print("****************************************************************")
print("input vs ours_kl")
ssim_img(edg1, edg6)
ssim_('input_19.jpg', 'ours_kl/19_output_19.jpg')
print()
print("****************************************************************")
print("input vs dsmap")
ssim_img(edg1, edg7)
ssim_('input_19.jpg', 'dsmap/19_output_19.jpg')
**** Test dark style ****
**************************************************************** input vs ours
edge-SSIM: 0.6471893278224553
SSIM: 0.3249150816919668 **************************************************************** input vs ours-opt
edge-SSIM: 0.7811387411015429
SSIM: 0.4034845769371973 **************************************************************** input vs ours-noloss
edge-SSIM: 0.5613444495753422
SSIM: 0.24178207954733114 **************************************************************** input vs ours_grad
edge-SSIM: 0.5830102707074071
SSIM: 0.2199915138833868 **************************************************************** input vs ours_kl
edge-SSIM: 0.5615954659410137
SSIM: 0.2555326273991126 **************************************************************** input vs dsmap
edge-SSIM: 0.5177731508212082
SSIM: 0.07412442401100493